In computer-aided design, dimensioning conventionally includes the placement of dimension text, dimension lines, and extension lines customized for a single view point. Dimension lines are line segments that indicate the extent of a feature, while extension lines visually connect the ends of a dimension line to the relevant feature in the model.
Dimensioning
Within the field of technical drawing, dimensioning is the specification of the dimensions of a three-dimensional (3D) (world space) object via two-dimensional (2D) (screen space) drawings. The goal is to add a necessary and sufficient number of dimension lines to specify the geometry. Such a drawing may be used, e.g., for defining tolerances during machining. As such, dimensioning is supported by rigorous international standards (e.g., ISO 128-1). Typically, dimensioning takes place on an orthographic or plan drawing.
Some contemporary commercial systems provide for the manual positioning of world space dimensioning lines. For example, some systems allow the author to specify such a world-space dimension line by clicking twice on the model to specify end points, and once to give a offset location for the dimension line. Automatically positioning lines in 2D has been contemplated as well. For instance, knowledge-based automatic dimensioning introduces a rule-based system based on domain knowledge that is implemented in Prolog. Some developments have utilized both a rule-based expert system to dimension 3D objects on a 2D diagram, and techniques such as occluding forbidden zones to constrain dimension lines locations. Some popular contemporary software tools perform a similar role of positioning world space lines in 3D. However, these systems suffer from the fact that as the user rotates the viewpoint, the dimension lines are often occluded by the model or other dimension lines, i.e., they do not interactively adapt to the current viewpoint.
Labeling
Optimally positioning text and symbols on maps, documents, or illustrations in such a way that other labels and critical features are not occluded is typically a computationally expensive operation; typically these problems are NP-hard (Non-deterministic Polynomial-time hard, from computational complexity theory). One study introduced a method for positioning a set of labels near the areas they refer to, thereby avoiding the silhouette of an object in screen space. That is, positioning screen space labels in screen space. Positioning world space geometry in screen space has been contemplated to position non-overlapping subassemblies that explain a machine's function. However, this system requires several minutes to pre-compute geometry; something that is not possible in an interactive (e.g., real-time) editing system. Other efforts have investigated placing labels by example, and positioning labels at interactive frame rates in static or dynamic scenes.
3D Manipulators
The problem of editing with dimension lines is related to 3D manipulation widgets. When a user selects a tool, a number of different widgets may allow the user to manipulate the current object, for example, scale in x, y, or z directions. Early systems positioned such manipulators in world space and have remained in use to the present day. Domain-specific widgets attached to the sub-objects being edited are also a common subject in graphics, and are used to visualize available translations, deformations, or dimensions of an orientated plane. Some contemporary studies propose that authors pre-define several views in which procedural modeling manipulators are well positioned on screen, in contrast to traditional dimensioning techniques in which dimension lines are optimized only for one static view.
Parametric Models
A parametric model takes a number of input parameters and uses these to create corresponding output geometry. Authors can create such models, and users edit the parameters to quickly generate geometry variations, avoiding the need for them to become familiar with the details of the modeling system. Typical examples are parameter-driven scene graphs of 3D packages and node/shape trees generated by procedural modeling systems, for example, CityEngine. Usually the nodes of such hierarchical models all have a (possibly non-unique) name and an oriented bounding box.
Contemporary 3D Modeling Tools
Dimensioning has been incorporated into many contemporary 3D modeling packages. As discussed above, current methods are mainly suited to a static viewpoint and dimension lines are placed on a 2D drawing, or they are fixed in 3D world space such that if the view point changes, the dimension lines can occlude the model, or intersect other dimension lines. This problem is illustrated, for example, in FIGS. 1A and 1B. Better tools are needed to address this issue.